// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/deliverorder/model/WoDeliverDto'
import API from './API'

const WORD = '工单'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__详情__', WORD], // 菜单
    ...API,
  },

  /**
   * 映射
   */
  MAP: {
    // 词语
    WORD,

    // 必须的字段，有值才会显示弹窗
    REQUIRED_KEY: 'orderCode',

    // 弹窗属性
    MODEL_PROPS: {
      title: `${WORD}详情`,
      huge: true,
      bgClose: true,
    },

    deliver_task_draft: { hasRelease: true, noCancel: true },
    deliver_task_assign: { btn: '指派', deal: 'ASSIGN' },
    deliver_task_receive: {},
    deliver_task_start: {},
    deliver_task_end: {},
    deliver_task_confirm: { btn: '确认', deal: 'CONFIRM' },
    deliver_task_complete: { deal: 'COMPLETE', noCancel: true },
    deliver_task_cancel: { noCancel: true },

    CANCEL: { title: '工单处理', method: 'cancel', operate: '工单撤销', remark: '撤销意见' },
    ASSIGN: { title: '选择指派人', method: 'assign', operate: '工单指派' },
    CONFIRM: { title: '工单处理', method: 'evaluate', operate: '工单评价' },
    HASTEN: { title: '工单处理', method: 'hasten', operate: '工单加急', remark: '加急描述' },
    NOTE: { title: '工单处理', method: 'note', operate: '工单追记', remark: '追记描述' },
  },

  /**
   * 字典
   */
  DICT: {
    /**
     * 超时
     */
    TIMEOUT: [
      [1, '已超时'],
      [2, '未超时'],
    ],

    /**
     * 指派模式
     */
    ASSIGN_TYPE: [
      [1, '手动派单'],
      [2, '自动派单'],
      [3, '抢单模式'],
    ],
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: 'startOne', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. setOne() 合并时使用
   * 3. openAdd() 新增时使用
   */
  INIT_ONE: CORE.initObj(BaseClass, {
    imageList: [],
    audioList: [],
  }),
}
